struct ListNode {  
    val: i32,  
    next: Option<Box<ListNode>>,  
}  

struct ListIterator {  
    current: Option<Box<ListNode>>,  
}  

impl Iterator for ListIterator {  
    type Item = i32;  
    fn next(&mut self) -> Option<Self::Item> {  
        // TODO: 遍历链表节点  
        None  
    }  
}  

#[test]  
fn test_list_iter() {  
    let list = Some(Box::new(ListNode {  
        val: 1,  
        next: Some(Box::new(ListNode { val: 2, next: None })),  
    }));  
    let iter = ListIterator { current: list };  
    assert_eq!(iter.collect::<Vec<_>>(), vec![1, 2]);  
}  